package com.yidu.action;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.yidu.comment.Page;
import com.yidu.comment.Tools;
import com.yidu.model.SnMember;
import com.yidu.service.SnMemberService;

/** 
 * @ClassName: 会员action
 * @Description: 描述 action
 * @author: ZhangHao
 * @date: 2018年12月17日 下午9:26:31  
 */
@Controller
@RequestMapping("/member")
public class SnMemberAction {
	
	/**
	 * 注入会员service
	 */
	@Resource
	SnMemberService snmemberService;
	
	/**
	 * 查询所有
	 * @param page 页数
	 * @param limit 行数
	 * @param snmember 会员
	 * @return
	 */
	@RequestMapping("findAll")
	@ResponseBody
	public Map<String, Object> findAll(String page,String limit,SnMember snmember) {
		//得到分页工具类
		Page pages=new Page();
		//给当前的页数赋值
		pages.setCurPage(Integer.valueOf(page));
		//给每页行数赋值
		pages.setRows(Integer.valueOf(limit));

		//创建一个map对象
		Map<String, Object> maps=new HashMap<>();
		maps.put("page", pages);
		maps.put("snmember", snmember);
		
		//调用根据生产订单id查询生产详情的方法
		List<SnMember> list=snmemberService.findAll(maps);
		//调用查询行数的方法
		int count=snmemberService.findCount(maps);
		//创建一个map
		Map<String, Object> map = new HashMap<>();
		map.put("code", 0);
		map.put("msg", 0);
		map.put("count",count);
		//将list放入map中
		map.put("data", list);
		return map;
	}
	
	/**
	 * 删除
	 * @param meId 会员id
	 * @return 0 删除失败 1 删除成功
	 */
	@RequestMapping("delete")
	@ResponseBody
	public int delete(String meId) {
		//调用删除的方法
		return snmemberService.delete(meId);
	}

	/**
	 * 增加修改
	 * @param file
	 * @param request
	 * @param member
	 * @return
	 * @throws IllegalStateException
	 * @throws IOException
	 */
	@RequestMapping("addorUpdate")
	public String addorUpdate(@RequestParam(value = "file", required = false)MultipartFile file,HttpServletRequest request,SnMember member) throws IllegalStateException, IOException{
		//配
		String path=Tools.getRealPath(request, file);
		member.setMeImage(path);
		//调用增加修改
		snmemberService.addOrUpdate(member);
		//返回页面
		return "redirect:../page/zh/snmember.html";
	}
	
	/**
	 * 根据ID查询
	 * @param meId 会员id
	 * @return
	 */
	@RequestMapping("findById")
	@ResponseBody
	public SnMember findById(String meId){
		//调用根据id查询
		return snmemberService.selectByPrimaryKey(meId);
	}
	/**
	 * 根据电话号码查询会员等级
	 * @param meId 会员id
	 * @return
	 */
	@RequestMapping("findPhone")
	@ResponseBody
	public SnMember findPhone(String phone){
		//调用根据电话查询
		SnMember member = snmemberService.findPhone(phone);
		//如果会员不为空
		if(member != null ){
			return member;
		}else{
			//创建会员对象
			SnMember member2 = new SnMember();
			//赋值
			member2.setMeDiscount("0");
			return member2;
		}
		
	}
}
